At present, the popular virtualization technology VMM (Virtual machine monitor) provides a virtual abstraction layer between hardware and operating system. VMM is also known as the host operating system. A virtual machine (VM), running on VMM, is also called a guest operating system. These VMs can be regarded as isolated guest operating system, which can share hardware resources. VMM allows multiple isolated virtual machines running on a single host, thus improves server utilization, reduces the cost of buying a server, and improves the availability of hardware and applications. Therefore it becomes pretty hot recently in the IT industry. With the VMM technologies matured and widely used, how to manage a large number of virtual machines in a pool centrally to deliver virtual resource service on-demand for users is increasingly becoming the focus of attention.
Enterprises or organizations use a variety of methods to manage different types of resources in distributed computing environment, including software resource, hardware resource, or a combination of both. Generally, companies employ many administrators who are responsible for managing different types of resources. For example, some administrators are responsible for the server (host) installation and management, as well as a variety of software installation on the server resources, such as operating systems, applications, and further update and maintenance the software. Thus for a large company, they need to hire a large number of different system administrators to manage hundreds of computing systems in the organization. Enterprises enable administrators to efficiently fulfill their duties through allocating keys and access policies to individual administrator. In addition to the System Administrator role above, the organization may arrange a group of system administrators only to manage a particular storage device. Among these administrators, companies may further assign some administrators to manage storage servers geographically distributed in different network, and so on. Similarly, company may arrange some administrators to manage network access only. The group may still assign administrators' duties in certain geographic location by specific user name and password.
Thus, in a traditional network environment, users getting access to specific resources in a system not only need to obtain a variety of permissions potentially from different levels of multiple administrators, but also need to interact with higher-level managers. In each instance (request), each system administrator may audit whether a user's request can be authorized. If not, the request is passed to a higher-level system administrator. This increases the burden of administrator. Although the burden can be solved by increasing the administrator levels, the solution brings more administrative overhead.
This is especially true with the rapid increase in hardware performance: The VMM can now make good use of these hardware capabilities to host a large number of virtual machines on a server. Each virtual machine is logically independent. It can be assigned a certain portion of the host memory and processing capabilities, and can be easily separated from other virtual machines. It can even be isolated from host server on which the virtual machine run. For users on the network, the virtual machine itself is a separate addressable computer system. Virtual machine can have a variety of functions, as another server on the network for software or hardware testing, and as a major computer system for thin client, and so on. There are other advantages for the virtual machine, such as easily hand-created and hand-deleted by administrators. Due to such flexible and powerful capabilities, virtual machines are widely installed on a server, numbered from ten to even hundreds, thus expanding the computer systems in an organization tenfold or even a hundredfold. Hence, the traditional layered management of administrators no longer afford to manage so many virtual machines. Further, traditional management methods can not adequately manage the additional requests for virtual machine, the licensing controls within each virtual machine, and the operation of each virtual machine. This requires a centralized automated method for managing virtual machine.
Aiming at virtual machine management issues, many large foreign companies and research institutions have launched their own solutions. VMWare's Virtual Center is virtual management software built on top of virtual platform, which enables centralized management and resource coordination for distributed servers and virtual machines. It also includes dynamic resource allocation, disaster recovery, and so on. Oracle has also developed its own VM Manager (virtual machine manager), which can manage many virtual desktop pools and virtual machines in the pool. VM Manager provides web-based access interface, also uses a Master-Slave system. For Xen virtual machine, some management software is also developed, e.g. virtual machine migration mechanism based on Xen is implemented by University of Cambridge of England. Denali project presided by University of Washington focused on providing virtual machine required for network services, capable of running a large number of lightweight virtual machines in a separate physical server. Global PlanetLab (an internet project) platform, used the Linux VServer (Linux Virtual Server) technology to provide global service nodes for users, with each user owning a globally distributed node to run their own applications.
Many organizations research on applications of virtual machines used in a distributed environment. A large number of virtual machines can be managed in Xen-based Parallax Project presided by Cambridge University, including eliminating write share, increasing the client's cache, using the template images to build the entire system. Ventana system uses centralized storage to ensure multiple versions isolation and mobility of virtual services; Researchers in American University of Florida firstly proposed virtual machine to be used in the traditional grid and other distributed environments, and proposed grid service architecture based on virtual machines. Currently, distributed computing based on virtual machine has become a hot research topic.
On the other hand, the purpose of centralized management of virtual resources is to respond to user application requests quickly and efficiently, especially for large number of concurrent requests. A transaction is a basic element used to build a reliable application, and to ensure that all involved parties have been able to reach an agreement with output result. Traditionally, a transaction has four fundamental properties, known as ACID properties. Atomicity: All changes to data are performed as if they are a single operation. That is, all the changes are performed, or none are done; Consistency: Data is in a consistent state when a transaction starts and when it ends; Isolation: results of all operations can't be shared outside until the transaction is committed; Durability: After a transaction successfully completes, changes to data persist and are not undone, even in the event of a system failure. When the application covers a plurality of distributed subsystems, or the application is composed of a plurality of separate components, the transactions can help the application handle failures in each separate blocks clearly.
The traditional transaction processing technology is mainly used for database system. However, with the development of computer science and technology, transaction processing concept has been introduced more widely into distributed network computing environment. Thus the field of distributed transaction processing emerges. The distributed Transaction means a transaction may involve multiple data storages, each data storage is based on the blocks (a lun (logical unit number) or a group of luns), files (local or remote file system) or relational (database) operations. It is a distributed sequence of operations, the data operated being distributed on different websites in the network, in order to access data storage of the respective website. When an application has a unique function to access or update data in multiple transactional resources, it should take advantage of distributed transaction, where the application moves data from one database to another, requiring a distributed transaction. The X/Open organization defines the reference model of Distributed Transaction Processing (DTP), including Application Program (AP), Resource Manager (RM), Transaction Manager (TM), Communications Resource Manager (CRM) and communication protocols.
Virtual machine is a special resource, unlike the general data resources. Each virtual machine has its own life cycle: when the virtual machine powers off (off), it is stored on disk as a file; when the virtual machine is in running state, it is a computer system running separately-assigned memory and processor power. A VM (virtual machine) instance may also require VM (Virtual Machine), LUN (logical unit number), Raid (Redundant Array of Independent Disks), vswitch (virtual switch), Nic (NIC) and other resources, which in turn involves a variety of resource management. In order to ensure access to a variety of bottom-layer resources, especially the block-level storage resources, it is necessary to provide transaction-level guarantees. Therefore, distributed transaction management are introduced here.